package com.design_pattern.proxy;

import java.lang.reflect.Method;

public interface MyInterceptor {
    /**
     * @param proxy  代理类
     * @param target 被代理类（真正类）
     * @param method 调用方法
     * @param args   方法参数
     * @return 是否拦截
     */
    public Boolean before(Object proxy, Object target, Method method, Object[] args);

    /**
     * @param proxy  代理类
     * @param target 被代理类（真正类）
     * @param method 调用方法
     * @param args   方法参数
     */
    public void around(Object proxy, Object target, Method method, Object[] args);

    /**
     * @param proxy  代理类
     * @param target 被代理类（真正类）
     * @param method 调用方法
     * @param args   方法参数
     */
    public void after(Object proxy, Object target, Method method, Object[] args);
}
